
package com.grace.cms.general.config;

import java.util.Map;

import org.springframework.boot.autoconfigure.web.servlet.error.ErrorViewResolver;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.ModelAndView;

import com.grace.cms.common.utils.ThemeUtils;

import jakarta.servlet.http.HttpServletRequest;


/** 错误页面视图 此处主要用于处理/error*/
@Component
public class PageErrorViewResolver implements ErrorViewResolver {

    /**
     * 解析错误视图。
     * 根据HTTP状态码和请求信息，选择合适的错误页面并返回ModelAndView对象。
     * 
     * @param request HttpServletRequest对象，代表客户端的请求。
     * @param status  HttpStatus对象，表示HTTP响应的状态码。
     * @param model   包含请求中模型数据的Map。
     * @return ModelAndView对象，包含错误页面的信息和模型数据。
     */
    @Override
    public ModelAndView resolveErrorView(HttpServletRequest request, HttpStatus status, Map<String, Object> model) {
        ModelAndView modelAndView = new ModelAndView();
       String themeName=model.get("path").toString().split("/")[1];
        modelAndView.addObject("themeName", new String(themeName));
        modelAndView.setViewName(ThemeUtils.choosePath(status, themeName)); 
        modelAndView.addAllObjects(model);
        return modelAndView;
    }


}